package myzd.client.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import myzd.domain.enums.*;

import java.util.Date;

/**
 * @author Diamond
 */
@Data
public class CreateAppointmentRequest {

  private String assigneeId;
  private String assigneeName;
  private String assigneeDepartment;
  /**
   * 订单来源
   */
  private OrderSourceType sourceType;

  /**
   * 服务类型
   */
  private OrderServiceType serviceType;

  /**
   * 如何了解我们
   */
  private OrderSourceChannel[] sourceChannel;

  /**
   * 订单状态
   */
  private Integer status;

  /**
   * 患者姓名
   */
  private String patientName;

  /**
   * 患者年龄
   */
  private Integer patientAge;

  /**
   * 患者性别
   */
  private Gender patientGender;

  /**
   * 患者身份证
   */
  private String patientIdCard;

  /**
   * 患者电话
   */
  private String patientPhone;

  /**
   * 患者所在省份id
   */
  private Integer patientProvinceId;


  /**
   * 患者所在省份名字
   */
  private String patientProvinceName;


  /**
   * 患者所在城市id
   */
  private Integer patientCityId;


  /**
   * 患者所在城市名字
   */
  private String patientCityName;

  /**
   * 曾就诊的医院ID
   */
  private Integer previousHospitalId;
  /**
   * 曾就诊的医院名字
   */
  private String previousHospitalName;

  /**
   * 当地医生建议
   */
  private String previousDoctorSuggest;

  /**
   * 手术指征
   */
  private Boolean indications;

  /**
   * 主要诊断疾病ID
   */
  private Integer diseaseId;

  /**
   * 主要诊断疾病名称
   */
  private String diseaseName;

  /**
   * 疾病描述
   */
  private String diseaseDescription;

  /**
   * 期望面诊城市Id
   */
  private Integer expectedCityId;

  /**
   * 期望面诊城市
   */
  private String expectedCityName;

  /**
   * 期望面诊省份id
   */
  private Integer expectedProvinceId;

  /**
   * 期望面诊省份名字
   */
  private String expectedProvinceName;

  /**
   * 期望面诊专家ID
   */
  private Integer expectedDoctorId;

  /**
   * 期望面诊专家名字
   */
  private String expectedDoctorName;
  /**
   * 期望面诊专家是否接收备选
   */
  private Boolean expectedDoctorAlternative;

  /**
   * 期望最早面诊日期
   */
  @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
  private Date expectedAppointmentStartDate;

  /**
   * 期望最晚面诊日期
   */
  @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
  private Date expectedAppointmentDueDate;

  /**
   * 期望面诊医院ID
   */
  private Integer expectedAppointmentHospitalId;


  /**
   * 期望面诊医院
   */
  private String expectedAppointmentHospitalName;


  /**
   * 期望面诊医院是否接收备选
   */
  private Boolean expectedAppointmentHospitalAlternative;


  /**
   * 检查资料完成日期
   */
  @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
  private Date previousAppointmentDate;

  /**
   * 倾向哪种方式治疗
   */
  private TreatmentType[] treatment;

}
